package com.example.kk.netty;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import com.example.kk.netty.netty.HelloClient;
import com.example.kk.netty.netty.HelloClientHandler;
import com.example.kk.netty.netty.HelloClientInitializer;

import java.io.IOException;
import java.net.InetSocketAddress;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    HelloClient hc;


     Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            System.out.println(msg);
            textView.setText(msg.obj.toString());
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       textView= (TextView) findViewById(R.id.textview);



        View run = this.findViewById(R.id.run);



        run.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                hc=new HelloClient(handler);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            hc.run();
                        } catch (InterruptedException | IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                    }
                }).start();
            }
        });
        View close = this.findViewById(R.id.close);
        close.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hc.closeChannel();
            }
        });



    }

//    private static final String TAG = "MainActivity";
//    public static final String HOST = "192.168.3.29";
//    public static int PORT = 7878;
//    private NioEventLoopGroup group;
//    private Button sendButton;
//    private static Context context;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//        context = this;
//        sendButton = (Button) findViewById(R.id.netty_send_button);
//        sendButton.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                connected();
//            }
//        });
//    }
//
//    // 连接到Socket服务端
//    private void connected() {
//        new Thread() {
//            @Override
//            public void run() {
//                group = new NioEventLoopGroup();
//                try {
//                    // Client服务启动器 3.x的ClientBootstrap
//                    // 改为Bootstrap，且构造函数变化很大，这里用无参构造。
//                    Bootstrap bootstrap = new Bootstrap();
//                    // 指定channel类型
//                    bootstrap.channel(NioSocketChannel.class);
//                    // 指定Handler
//                    bootstrap.handler(new HelloClientInitializer(context));
//                    // 指定EventLoopGroup
//                    bootstrap.group(group);
//                    // 连接到本地的8000端口的服务端
//                    Channel channel = bootstrap.connect(new InetSocketAddress(HOST,
//                            PORT)).sync().channel();
//                    channel.writeAndFlush("我是客户端，我是客户端！\r\n");
//                    channel.read();
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//        }.start();
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        if(group!=null){
//            group.shutdownGracefully();
//        }
//    }
//
//

public Handler getHandler() {
    return handler;
}

    public void setHandler(Handler handler) {
        this.handler = handler;
    }

}
